package main

import "fmt"

type person3 struct {
	name string
	age int
}

func main() {
	p1:=person3{"王二狗",30}
	fmt.Println(p1) //{王二狗 30}
	changeName(p1) //{西哲 30}
	fmt.Println(p1) //{王二狗 30}
	changeName2(&p1) //&{李小花 30} {李小花 30}
	fmt.Println(p1) //{李小花 30}



}
/*p就相当于把p1传递进来，因为参数类型是person3所以传递的时候必须传进来
person3类型的结构体变量，别的不行,*/
func changeName(p person3)  {
	//函数如果参数类型是person3结构体，那么直接就可以该结构体内的参数
	p.name="西哲"
	fmt.Println(p)
}

func changeName2(p *person3)  {
	p.name="李小花"
	fmt.Println(p,*p)
}